sudo: required

dist: xenial

services:
    - docker

env:
    - CHANGE_MINIKUBE_NONE_USER=true GO111MODULE=on

language: go

go:
    - 1.14.3

before_script:
    # install kubectl and minikube
    #- curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
    #- curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
    #- sudo minikube start --vm-driver=none --kubernetes-version=v1.15.0
    #- minikube update-context
    #- JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1; done
    # a tip of using forked package import in Golang
    - if [ ! -d $GOPATH/src/github.com/chaosblade-io/chaosblade ]; then
        mkdir -p $GOPATH/src/github.com/chaosblade-io/chaosblade;
        cp -r $TRAVIS_BUILD_DIR/. $GOPATH/src/github.com/chaosblade-io/chaosblade;
        cd $GOPATH/src/github.com/chaosblade-io/chaosblade;
      fi

script:
    #- kubectl cluster-info
    - go test -race -coverprofile=coverage.txt -covermode=atomic ./...

after_success:
  - bash <(curl -s https://codecov.io/bash)
